Skip to content

Conversation

mkovalua
Copy link
Contributor

@mkovalua mkovalua commented Aug 27, 2025

Purpose

Currently, the angular-osf logged in homepage is missing a little functionality. The first is the video that’s supposed to show when you don’t have any projects to show in the project display. The second is the service links that link to Collections, Registries, Preprints, and Institutions. We’ll also be removing the sections not shown here.

Summary of Changes

added condition to check if there is any projects for user if not render

Video link: Introduction to OSF

OSFCollections: https://www.cos.io/products/osf-collections

OSFInstitutions: /registries

OSFRegistries: /institutions

OSFPreprints: /preprints/

Screenshot(s)

image image image image

Side Effects

The video interface issue was fixed by adding @if (isProjectsLoading()){ <osf-loading-spinner/>} and

existsProjects() || !!searchControl?.value?.length) maybe there is better approach

Screen.Recording.2025-08-27.at.17.06.20.mov

QA Notes

… Preprints url banners if user have not created any project for home (/dashboard) tab
Comment on lines 100 to 148
<div class="flex col items-center" style="align-items: start;">
<a
href="https://www.cos.io/products/osf-collections"
target="_blank"
rel="noopener noreferrer"
data-test-products-collections
>
<img
src="assets/images/dashboard/products/osf-collections-c66e5d4408313e47ec3a7d0912d8b45d.png"
alt="OSF Collections"
>
</a>

<a
href="/registries"
target="_self"
rel="noopener noreferrer"
data-test-products-registries
>
<img
src="assets/images/dashboard/products/osf-registries-948f7d55ba7ca8585e25d020a26a7f59.png"
alt="OSF Registries"
>
</a>

<a
href="/institutions"
target="_self"
rel="noopener noreferrer"
data-test-products-institutions
>
<img
src="assets/images/dashboard/products/osf-institutions-3980d88f66513f667da557bfdc8401d5.png"
alt="OSF Institutions"
>
</a>

<a
href="/preprints"
target="_self"
rel="noopener noreferrer"
data-test-products-preprints
>
<img
src="assets/images/dashboard/products/osf-preprints-d4831812809138161920fe6f3ba277eb.png"
alt="OSF Preprints"
>
</a>
</div>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should always show, not just when there are no projects.

2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project
@mkovalua mkovalua marked this pull request as ready for review August 27, 2025 19:16
Copy link
Contributor

@bp-cos bp-cos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few questions. A few suggestions.

Also please write unit tests for the new methods in the components.

Include some basic unit tests to verify that html is rendered with the if/else statements.

When I say "basic" just validate that some text in an element is visible and not visible from the other conditions.

However, if you think more advanced tests to validate the links are there (based on what Brian G. said about the links being required) that would be some good tests too.

</div>
<span class="separator">|</span>
<div class="flex justify-content-left">
<a href="https://osf.io/ezcuj/wiki/home/">{{ 'footer.links.reproducibilityProjectPsychology' | translate }}</a>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These would be the environment.webUrl and not hard-coded.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose it is needed to be hardcoded , see it hardcoded on staging2 to refer specific article

https://osf.io/ezcuj/wiki/home/ that exists only on prod env

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned on Jira, these links were added by mistake to the mockups. You should not need any changes to the footer in this PR.

</div>
<span class="separator">|</span>
<div class="flex justify-content-left">
<a href="https://osf.io/collections/rpcb/discover/">{{ 'footer.links.reproducibilityProjectCancerBiology' | translate }}</a>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These would be the environment.webUrl and not hard-coded.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose it is needed to be hardcoded , see it hardcoded on staging2 to refer specific article

https://osf.io/collections/rpcb/discover that exists only on prod env

image

{{ 'home.loggedIn.dashboard.quickSearch.myProjects' | translate }}
@if (isProjectsLoading()) {
<osf-loading-spinner />
} @else {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this @else could likely be a @esle if

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if workflow goes to else it is needed to render highlighted code

image

if we use @if (isProjectsLoading())-> @else if (existsProjects() || !!searchControl.value?.length) -> else

it will be needed to duplicate the code for else if and else

@if (isProjectsLoading()) {
<osf-loading-spinner />
} @else {
@if (existsProjects() || !!searchControl.value?.length) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend moving conditional statements to methods in the component when the html based conditional statements start to be more that 1 condition.

It is easier to unit test in the component. I'll let you make the decision.


<a routerLink="/institutions">
<img
src="assets/images/dashboard/products/osf-institutions-3980d88f66513f667da557bfdc8401d5.png"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be absolute or relative?

Copy link
Contributor Author

@mkovalua mkovalua Aug 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I understand, absolute path approach is used for images assets/images/

see the following approach in project

<img ngSrc="assets/images/logo.svg">

maybe it is needed to update src to ngSrc or create saparete component https://github.com/CenterForOpenScience/angular-osf/pull/301/files#discussion_r2305304508?

image

see same path formats there assets/images/integrations

image image

</div>
<a routerLink="/registries">
<img
src="assets/images/dashboard/products/osf-registries-948f7d55ba7ca8585e25d020a26a7f59.png"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolute or relative?

<p class="m-t-12">{{ 'home.loggedIn.hosting.subtitle' | translate }}</p>
<a routerLink="/preprints">
<img
src="assets/images/dashboard/products/osf-preprints-d4831812809138161920fe6f3ba277eb.png"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolute or relative?

<osf-loading-spinner />
} @else {
@if (existsProjects() || !!searchControl.value?.length) {
<osf-sub-header
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The html for the else if and else conditions if fairly large. I will let you make the decision and there's a fine line between leaving it as 1 component or splitting it into two components.

What do you think?

Copy link
Contributor Author

@mkovalua mkovalua Aug 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, agree that it is not compact,

I prefer to keep 1 component, because I am not confident what we may split into 2 components.

I suppose it may be the following if it may be used in other places too not only for dashboard, what is your opinion?

image


<a routerLink="/institutions">
<img
src="assets/images/dashboard/products/osf-institutions-3980d88f66513f667da557bfdc8401d5.png"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do all of the images have a guid? Is this necessary anymore?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw it on staging2 (looks like it is added by browser but locally in IDE for ember there is no - yes It is redundant)

image image

@mkovalua mkovalua requested a review from bp-cos August 27, 2025 21:10
Copy link
Contributor

@bp-cos bp-cos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like you need tests.

Copy link
Contributor

@bp-cos bp-cos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this PR. good job.

A few updates and tests are needed.

src="assets/images/dashboard/products/osf-collections-c66e5d4408313e47ec3a7d0912d8b45d.png"
alt="OSF Collections"
/>
<img src="assets/images/dashboard/products/osf-collections.png" alt="OSF Collections" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alt text needs to come from the i18n file. use [alt] = "'i18n.path' | translate"

src="assets/images/dashboard/products/osf-institutions-3980d88f66513f667da557bfdc8401d5.png"
alt="OSF Institutions"
/>
<img src="assets/images/dashboard/products/osf-institutions.png" alt="OSF Institutions" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alt text needs to come from the i18n file. use [alt] = "'i18n.path' | translate"

src="assets/images/dashboard/products/osf-registries-948f7d55ba7ca8585e25d020a26a7f59.png"
alt="OSF Registries"
/>
<img src="assets/images/dashboard/products/osf-registries.png" alt="OSF Registries" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alt text needs to come from the i18n file. use [alt] = "'i18n.path' | translate"

src="assets/images/dashboard/products/osf-preprints-d4831812809138161920fe6f3ba277eb.png"
alt="OSF Preprints"
/>
<img src="assets/images/dashboard/products/osf-preprints.png" alt="OSF Preprints" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alt text needs to come from the i18n file. use [alt] = "'i18n.path' | translate"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be moved to /src/testing/data and follow those templates.

This is good though.

});
}

protected openInfoLink(): void {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see a test for this?

const page = Math.floor(this.tableParams().firstRowIndex / this.tableParams().rows) + 1;
this.actions.getMyProjects(page, this.tableParams().rows, filters);
this.actions.getMyProjects(page, this.tableParams().rows, filters).pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you test this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, when projects are loaded the loading is set to false

image

otherwise nothing renders

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you test is in the unit tests?

Copy link
Contributor Author

@mkovalua mkovalua Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's covering by tests during initialization component, I have updated the code
#301 (comment)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should any text (translations string) or links be verified after the spinners are finished loading?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added test to verify product images

d191424

@mkovalua mkovalua requested a review from bp-cos August 29, 2025 18:10
Copy link
Contributor

@bp-cos bp-cos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good and getting closer.

imports: [
DashboardComponent,
ReactiveFormsModule,
OSFTestingModule,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need this one is you have OSFTestingStoreModule

describe('DashboardComponent', () => {
let component: DashboardComponent;
let fixture: ComponentFixture<DashboardComponent>;
const storeMock = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is overwritten by OSFTestingStoreModule and can be removed

private readonly dialogService = inject(DialogService);
private readonly accountSettingsService = inject(AccountSettingsService);

protected readonly isLoading = signal(false);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a selector and already in the code.

}

fetchProjects(): void {
this.isLoading.set(true);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a selector and already in the code.

const page = Math.floor(this.tableParams().firstRowIndex / this.tableParams().rows) + 1;
this.actions.getMyProjects(page, this.tableParams().rows, filters);
this.actions.getMyProjects(page, this.tableParams().rows, filters).pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you test is in the unit tests?

.getMyProjects(page, this.tableParams().rows, filters)
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
complete: () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be no observables only actions and selectors.

return this.projects().filter((project) => project.title.toLowerCase().includes(search));
});

protected readonly existsProjects = computed(() => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you unit test this without mocking it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose it looks to be redundant, It is inside statement of component not store, the store variables like getProjects are mocked.

@mkovalua mkovalua changed the base branch from main to develop September 4, 2025 16:32
@mkovalua mkovalua requested a review from bp-cos September 4, 2025 16:38
Copy link
Contributor

@bp-cos bp-cos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great

@bp-cos bp-cos added this pull request to the merge queue Sep 4, 2025
Merged via the queue into CenterForOpenScience:develop with commit 0fed748 Sep 4, 2025
2 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Sep 11, 2025
* Update develop from main (#322)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>

* Feat(8653): Implement view tracking for registrations and preprints (#308)

* feat(datacite-tracker): implemented datacite view tracking for registries and preprints

* chore(datacite-tracker): refactored doi extraction to be less repetitive

* fix(datacite-tracker): reverted undesired refactor

* chore(datacite-tracker): added tests to registry component

* fix(datacite-tracker): fixed datacite tracker effect

* chore(datacite-tracker): added tests to project and preprint components

* [ENG-8624] feat(registries): add context to registration submission + rearrange title and description layout (#304)

* feat(registries): add context to registration submission + rearrange layout

* feat(registries): CR followup

* feat(registries): Add test for TagsComponent

* feat(registries): Add moar tests

* feat(registries): CR followup

* [ENG-8504] Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab (#301)

* Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab

* 1. add translations
2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project

* align footer content left

* use angular routerLink approach for <a>

* add margin bottom for Visit button to look it better on resizing

* update footer formatting

* fix(dashboard): Fix [WARNING] NG8107

* fix(dashboard): remove not used variable

* fix(dashboard): fix code format by running "npm run lint:fix && npm run format"

* fix(dashboard): use .png names without guid

* implement unit testing for dashboard when there is a project and there is no project

* remove redundant footer RPCB and RCP links

* move dashboard images alt text to en.json

* add test for openInfoLink()

* update(dashboard): use dashboard.data for mocking

* update(dashboard): add test to show that products footer images no exists on spinner run and are rendering after it finished running

* fix(dashboard): npm run lint:fix && npm run format

* add missing code for dashboard

* remove redundant imports for dashboard test

* use providers -> useValue  mock approach for dashboard

* resolve CR comments

* Fix/develop conflicts (#332)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>

* [ENG-8639] add <meta> tags to files detail (#324)

* chore(meta-tags): cleaner meta-tag cleanup (without urls)

* chore(meta-tags): add full name to contributor tag

* feat(meta-tags): add meta tags to file-detail page

* fix(meta-tags): use image that exists

* feat(ci): separate linting from tests (#345)

* Feat(datacite-tracker): implemented file view and  download tracking (#335)

* feat(datacite-tracker): implemented file view and download tracking

* feat(datacite-tracker): implemented preprint version download tracking

* chore(datacite-tracker): rewritten existing tests to respect recent refactor

* chore(datacite-tracker): added tests for file downloads tracking

* chore(datacite-tracker): added tests for leftover components and pr comment fixes

* Feat(ENG-8778): Implement Cookie consent message (#353)

* feat(cookie-consent): added toast which asks for cookie consent

* chore(cookie-consent): added tests for cookie consent

* chore(datacite-tracker): fixed review comments

* [eng-8741] Added Sentry to the app (#340)

* chore(config-service): added a config service with tests

* feat(sentry): added sentry to the app and state-error handler with tests

* feat(promise): added a promise for application loading

* refactor(rename): renamed the files and consts to be more explicit

* feat(google-tag-manager): added a google tag manager factor

* feat(gtm): added the logic to get the google tag manager working

* feat(pr-review): add code from pr

* feat(eng-8741): added conditions if the config variables are not present

* chore(nit-pick-for-brian-g): add a gitignore

* fix(errors): fixed some issues

* fix(dashboard): fixed bugs

* fix(tests): fixed unit tests

* fix(config): added error handling

---------

Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
github-merge-queue bot pushed a commit that referenced this pull request Sep 12, 2025
* Update develop from main (#322)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>

* Feat(8653): Implement view tracking for registrations and preprints (#308)

* feat(datacite-tracker): implemented datacite view tracking for registries and preprints

* chore(datacite-tracker): refactored doi extraction to be less repetitive

* fix(datacite-tracker): reverted undesired refactor

* chore(datacite-tracker): added tests to registry component

* fix(datacite-tracker): fixed datacite tracker effect

* chore(datacite-tracker): added tests to project and preprint components

* [ENG-8624] feat(registries): add context to registration submission + rearrange title and description layout (#304)

* feat(registries): add context to registration submission + rearrange layout

* feat(registries): CR followup

* feat(registries): Add test for TagsComponent

* feat(registries): Add moar tests

* feat(registries): CR followup

* [ENG-8504] Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab (#301)

* Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab

* 1. add translations
2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project

* align footer content left

* use angular routerLink approach for <a>

* add margin bottom for Visit button to look it better on resizing

* update footer formatting

* fix(dashboard): Fix [WARNING] NG8107

* fix(dashboard): remove not used variable

* fix(dashboard): fix code format by running "npm run lint:fix && npm run format"

* fix(dashboard): use .png names without guid

* implement unit testing for dashboard when there is a project and there is no project

* remove redundant footer RPCB and RCP links

* move dashboard images alt text to en.json

* add test for openInfoLink()

* update(dashboard): use dashboard.data for mocking

* update(dashboard): add test to show that products footer images no exists on spinner run and are rendering after it finished running

* fix(dashboard): npm run lint:fix && npm run format

* add missing code for dashboard

* remove redundant imports for dashboard test

* use providers -> useValue  mock approach for dashboard

* resolve CR comments

* Fix/develop conflicts (#332)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>

* [ENG-8639] add <meta> tags to files detail (#324)

* chore(meta-tags): cleaner meta-tag cleanup (without urls)

* chore(meta-tags): add full name to contributor tag

* feat(meta-tags): add meta tags to file-detail page

* fix(meta-tags): use image that exists

* feat(ci): separate linting from tests (#345)

* Feat(datacite-tracker): implemented file view and  download tracking (#335)

* feat(datacite-tracker): implemented file view and download tracking

* feat(datacite-tracker): implemented preprint version download tracking

* chore(datacite-tracker): rewritten existing tests to respect recent refactor

* chore(datacite-tracker): added tests for file downloads tracking

* chore(datacite-tracker): added tests for leftover components and pr comment fixes

* Feat(ENG-8778): Implement Cookie consent message (#353)

* feat(cookie-consent): added toast which asks for cookie consent

* chore(cookie-consent): added tests for cookie consent

* chore(datacite-tracker): fixed review comments

* [eng-8741] Added Sentry to the app (#340)

* chore(config-service): added a config service with tests

* feat(sentry): added sentry to the app and state-error handler with tests

* feat(promise): added a promise for application loading

* refactor(rename): renamed the files and consts to be more explicit

* feat(google-tag-manager): added a google tag manager factor

* feat(gtm): added the logic to get the google tag manager working

* feat(pr-review): add code from pr

* feat(eng-8741): added conditions if the config variables are not present

* chore(nit-pick-for-brian-g): add a gitignore

* Fix/dev to main (#368)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

* Test/565 my projects (#334)

* test(my-projects): added unit tests

* test(create-project-dialog): fixed errors

* test(my-projects): fixed errors

* test(create-project-dialog): fixed

* Feat/550 file widget (#323)

* feat(file): file-widget

* feat(file): fixed move file

* Update src/app/features/project/overview/components/files-widget/files-widget.component.html

Co-authored-by: nsemets <nsemets@exoft.net>

* feat(file): resolve comments

* feat(file): refactoring

* feat(file): remove sorting storage

* feat(file): navigate to file

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/metadata (#336)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* chore(env): updated env files (#328)

* chore(env): updated env files

* fix(env): updated api url

* fix(env): updated env for files widget

* fix(redirect): fixed redirect after registration (#339)

* Test/576 analytics (#341)

* test(analytics): added new unit tests

* test(analytics): fixed

* Feat - Admin institution filters (#333)

* refactor(admin-institutions): Refactored and simplified code

* fix(admin-institutions): Fixed columns and sorting

* feat(institutions-projects): Implemented filters for projects tab. Fixed search result parsing

* feat(institutions-preprints): Implemented filters for preprints tab. Fixed search result parsing

* feat(institutions-registration): Implemented filters for registration tab

* fix(institutions-admin): Fixed resources to table mapping

* fix(institutions-admin): Fixed hardcoded institution iri for index-value-search

* refactor(institutions-admin-service): Extracted apiUrl to local variable

* fix(resource-model): Fix after merge conflict

* fix(institution-users): Fixed links to user

* fix(institutions-dashboard): Added translations

* fix(institutions-dashboard): Fixed tests

* fix(admin-institutions): Refactored filters to reusable component

* fix(admin-institutions): Fixed comments

* Fix - Preprints bugs (#337)

* fix(metadata-step): Made Publication DOI field optional

* fix(preprints-landing): Contact Us button titlecased, Show example button link fixed

* fix(create-new-version): Handled back button

* fix(preprint-moderation): Fixed sorting for submissions

* fix(license-component): Clearing all fields on cancel button click

* fix(preprint-stepper): Fixed add-project-form

* Fix/affiliated institutions (#342)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* Fix/affiliated institutions (#344)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* fix(files): updated files

* Feat/185 - Linked services (#338)

* feat(verified-links): fixed minor linked resources bugs

* feat(linked-services): added link addons configuration logic to the project settings

* feat(linked-services): added linked services page and nav tab, added link addons to settings

* feat(linked-services): fixed issues after merging

* feat(linked-services): fixed pre-push husky file

* fix(linked-services): updated tables

* feat(linked-services): added link disabling logic for storage item selector

* feat(linked-services): fixed comments and minor bugs

* feat(linked-services): fixed test issues

* feat(linked-services): fixed storage description display issue on addon terms page

* fix(recent-activity): resolved view only link addon logging issue

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/clean code (#347)

* fix(packages): removed unused packages

* fix(protected): removed protected in all files

* fix(styles): removed some mixins and scss files

* fix(classes): removed old classes

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* fix(file): downloads link (#346)

* Test/580 home page (#348)

* test(router): added route mocks

* test(router): added tests for dashboard page

* test(router): added tests for home page

* test(analytics): fixed

* Fix/overview (#349)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(children): refactor get children request (#351)

* Fix/overview (#352)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(updates): clean up some code

* fix(regions): updated regions state and removed duplication

* fix(providers): updated models for providers

* fix(test): fixed unit test

* fix(bugs): fixed bugs (#354)

* Feat(project-redirect-modal): added project redirect modal (#350)

* fix(add-project-redirect-modal): added project redirect modal

* refactor(add-project-redirect-modal): added pipe to the modal subscription

* Test/395 institutions components (#358)

* test(institutions): tested institutions, institutions-list, institutions-search components

* fix(tests): fixed tests

* Fix/registration bugs (#356)

* fix(registration): fixed 594

* fix(registration-bugs): fixed some registrations bugs

* fix(registration): fixed registrations fr project

* fix(registration): remove useless font class

* fix(tags-input): Fix strange behaviour when removing first tag (#361)

* Fix/accessibility (#359)

* fix(accessibility): update accessibility for some pages

* fix(accessibility): added aria labels

* fix(updates): clean up code

* fix(routes): removed unused route

* fix(accessibility): added aria labels to institutions

* fix(accessibility): removed aria label for header button

* fix(metadata): fixed spacing

* fix(resource-metadata): fixed url

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Fix/search filters (#360)

* fix(global-search-filters): Resolved TODOs

* fix(global-search-filters): Fixed and simplified filters logic code

* fix(global-search-resource-card): Made links open in a new tab

* fix(global-search-filters): Added cardSearchResultCount to filter option

* fix(global-search-filters): Fixed boolean filters selected state

* fix(global-search-filters): Fixed after merge conflict

* fix(global-search-filters): Fixed PR comments

* Feat(ENG-8625): add Recent Activity to registrations (#315)

* feat(registration-recent-activity): add Recent Activity to registrations

* feat(registration-recent-activity): code fixes regarding comments

* feat(registration-recent-activity): second round of code fixes regarding review comments

* feat(registration-recent-activity): run lint fix

* fix(recent-activity): updated some code (#364)

* fix(errors): fixed some issues

* fix(dashboard): fixed bugs

* fix(tests): fixed unit tests

* fix(config): added error handling

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>

* feat(maintenance-banner): create maintenance banner component

* fix(maintenance-banner): fix import

* fix(maintenance-banner): Use PrimeNG for banner

* fix(maintenance-banner): Created service and model for Maintenance banner

* fix(maintenance-banner): Made banner show on all pages

* fix(maintenance-banner): Created new model, cleaned code

* fix(maintenance-banner): Removed litter

* fix(maintenance-banner): Changed ApiURL, added type

* fix(maintenance-banner): Fix fetch when cookies

---------

Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>
github-merge-queue bot pushed a commit that referenced this pull request Sep 13, 2025
* Update develop from main (#322)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>

* Feat(8653): Implement view tracking for registrations and preprints (#308)

* feat(datacite-tracker): implemented datacite view tracking for registries and preprints

* chore(datacite-tracker): refactored doi extraction to be less repetitive

* fix(datacite-tracker): reverted undesired refactor

* chore(datacite-tracker): added tests to registry component

* fix(datacite-tracker): fixed datacite tracker effect

* chore(datacite-tracker): added tests to project and preprint components

* [ENG-8624] feat(registries): add context to registration submission + rearrange title and description layout (#304)

* feat(registries): add context to registration submission + rearrange layout

* feat(registries): CR followup

* feat(registries): Add test for TagsComponent

* feat(registries): Add moar tests

* feat(registries): CR followup

* [ENG-8504] Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab (#301)

* Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab

* 1. add translations
2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project

* align footer content left

* use angular routerLink approach for <a>

* add margin bottom for Visit button to look it better on resizing

* update footer formatting

* fix(dashboard): Fix [WARNING] NG8107

* fix(dashboard): remove not used variable

* fix(dashboard): fix code format by running "npm run lint:fix && npm run format"

* fix(dashboard): use .png names without guid

* implement unit testing for dashboard when there is a project and there is no project

* remove redundant footer RPCB and RCP links

* move dashboard images alt text to en.json

* add test for openInfoLink()

* update(dashboard): use dashboard.data for mocking

* update(dashboard): add test to show that products footer images no exists on spinner run and are rendering after it finished running

* fix(dashboard): npm run lint:fix && npm run format

* add missing code for dashboard

* remove redundant imports for dashboard test

* use providers -> useValue  mock approach for dashboard

* resolve CR comments

* Fix/develop conflicts (#332)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>

* [ENG-8639] add <meta> tags to files detail (#324)

* chore(meta-tags): cleaner meta-tag cleanup (without urls)

* chore(meta-tags): add full name to contributor tag

* feat(meta-tags): add meta tags to file-detail page

* fix(meta-tags): use image that exists

* Add TOS Banner to angular-osf

* implement tos banner component

* use accepted_terms_of_service for models

* update tos component

* get acceptedTermsOfService from db on component initialization

* Update acceptedTermsOfService on checkbox select and continue click

* fix(tos banner): updating component and updating acceptedTermsOfService data in db

* fix(tos banner): update terms of use

* fix(tos banner): use en.json for text

* fix(tos banner): code updates

* fix(tos-banner): add tos banner to dashboard

* fix(tos-banner): remove subscribe for updateUserProfile call

* fix(dashboard): fix CR comments

* fix(tos-banner): fix CR comments

* fix(banner): fixed banner

* fix(tos-banner): update en.json

* fix(tos-banner): Convert acceptedTermsOfService to accepted_terms_of_service
Todo: try find a way how to convert acceptedTermsOfService to accepted_terms_of_service in updateUserProfile more generic with mappers

* fix(tos-banner): convert acceptedTermsOfService to accepted_terms_of_service in more generic way with mappers and separate API method call

---------

Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
github-merge-queue bot pushed a commit that referenced this pull request Sep 15, 2025
* Update develop from main (#322)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>

* Feat(8653): Implement view tracking for registrations and preprints (#308)

* feat(datacite-tracker): implemented datacite view tracking for registries and preprints

* chore(datacite-tracker): refactored doi extraction to be less repetitive

* fix(datacite-tracker): reverted undesired refactor

* chore(datacite-tracker): added tests to registry component

* fix(datacite-tracker): fixed datacite tracker effect

* chore(datacite-tracker): added tests to project and preprint components

* [ENG-8624] feat(registries): add context to registration submission + rearrange title and description layout (#304)

* feat(registries): add context to registration submission + rearrange layout

* feat(registries): CR followup

* feat(registries): Add test for TagsComponent

* feat(registries): Add moar tests

* feat(registries): CR followup

* [ENG-8504] Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab (#301)

* Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab

* 1. add translations
2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project

* align footer content left

* use angular routerLink approach for <a>

* add margin bottom for Visit button to look it better on resizing

* update footer formatting

* fix(dashboard): Fix [WARNING] NG8107

* fix(dashboard): remove not used variable

* fix(dashboard): fix code format by running "npm run lint:fix && npm run format"

* fix(dashboard): use .png names without guid

* implement unit testing for dashboard when there is a project and there is no project

* remove redundant footer RPCB and RCP links

* move dashboard images alt text to en.json

* add test for openInfoLink()

* update(dashboard): use dashboard.data for mocking

* update(dashboard): add test to show that products footer images no exists on spinner run and are rendering after it finished running

* fix(dashboard): npm run lint:fix && npm run format

* add missing code for dashboard

* remove redundant imports for dashboard test

* use providers -> useValue  mock approach for dashboard

* resolve CR comments

* Fix/develop conflicts (#332)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>

* [ENG-8639] add <meta> tags to files detail (#324)

* chore(meta-tags): cleaner meta-tag cleanup (without urls)

* chore(meta-tags): add full name to contributor tag

* feat(meta-tags): add meta tags to file-detail page

* fix(meta-tags): use image that exists

* feat(ci): separate linting from tests (#345)

* Feat(datacite-tracker): implemented file view and  download tracking (#335)

* feat(datacite-tracker): implemented file view and download tracking

* feat(datacite-tracker): implemented preprint version download tracking

* chore(datacite-tracker): rewritten existing tests to respect recent refactor

* chore(datacite-tracker): added tests for file downloads tracking

* chore(datacite-tracker): added tests for leftover components and pr comment fixes

* Feat(ENG-8778): Implement Cookie consent message (#353)

* feat(cookie-consent): added toast which asks for cookie consent

* chore(cookie-consent): added tests for cookie consent

* chore(datacite-tracker): fixed review comments

* [eng-8741] Added Sentry to the app (#340)

* chore(config-service): added a config service with tests

* feat(sentry): added sentry to the app and state-error handler with tests

* feat(promise): added a promise for application loading

* refactor(rename): renamed the files and consts to be more explicit

* feat(google-tag-manager): added a google tag manager factor

* feat(gtm): added the logic to get the google tag manager working

* feat(pr-review): add code from pr

* feat(eng-8741): added conditions if the config variables are not present

* chore(nit-pick-for-brian-g): add a gitignore

* Fix/dev to main (#368)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

* Test/565 my projects (#334)

* test(my-projects): added unit tests

* test(create-project-dialog): fixed errors

* test(my-projects): fixed errors

* test(create-project-dialog): fixed

* Feat/550 file widget (#323)

* feat(file): file-widget

* feat(file): fixed move file

* Update src/app/features/project/overview/components/files-widget/files-widget.component.html

Co-authored-by: nsemets <nsemets@exoft.net>

* feat(file): resolve comments

* feat(file): refactoring

* feat(file): remove sorting storage

* feat(file): navigate to file

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/metadata (#336)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* chore(env): updated env files (#328)

* chore(env): updated env files

* fix(env): updated api url

* fix(env): updated env for files widget

* fix(redirect): fixed redirect after registration (#339)

* Test/576 analytics (#341)

* test(analytics): added new unit tests

* test(analytics): fixed

* Feat - Admin institution filters (#333)

* refactor(admin-institutions): Refactored and simplified code

* fix(admin-institutions): Fixed columns and sorting

* feat(institutions-projects): Implemented filters for projects tab. Fixed search result parsing

* feat(institutions-preprints): Implemented filters for preprints tab. Fixed search result parsing

* feat(institutions-registration): Implemented filters for registration tab

* fix(institutions-admin): Fixed resources to table mapping

* fix(institutions-admin): Fixed hardcoded institution iri for index-value-search

* refactor(institutions-admin-service): Extracted apiUrl to local variable

* fix(resource-model): Fix after merge conflict

* fix(institution-users): Fixed links to user

* fix(institutions-dashboard): Added translations

* fix(institutions-dashboard): Fixed tests

* fix(admin-institutions): Refactored filters to reusable component

* fix(admin-institutions): Fixed comments

* Fix - Preprints bugs (#337)

* fix(metadata-step): Made Publication DOI field optional

* fix(preprints-landing): Contact Us button titlecased, Show example button link fixed

* fix(create-new-version): Handled back button

* fix(preprint-moderation): Fixed sorting for submissions

* fix(license-component): Clearing all fields on cancel button click

* fix(preprint-stepper): Fixed add-project-form

* Fix/affiliated institutions (#342)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* Fix/affiliated institutions (#344)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* fix(files): updated files

* Feat/185 - Linked services (#338)

* feat(verified-links): fixed minor linked resources bugs

* feat(linked-services): added link addons configuration logic to the project settings

* feat(linked-services): added linked services page and nav tab, added link addons to settings

* feat(linked-services): fixed issues after merging

* feat(linked-services): fixed pre-push husky file

* fix(linked-services): updated tables

* feat(linked-services): added link disabling logic for storage item selector

* feat(linked-services): fixed comments and minor bugs

* feat(linked-services): fixed test issues

* feat(linked-services): fixed storage description display issue on addon terms page

* fix(recent-activity): resolved view only link addon logging issue

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/clean code (#347)

* fix(packages): removed unused packages

* fix(protected): removed protected in all files

* fix(styles): removed some mixins and scss files

* fix(classes): removed old classes

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* fix(file): downloads link (#346)

* Test/580 home page (#348)

* test(router): added route mocks

* test(router): added tests for dashboard page

* test(router): added tests for home page

* test(analytics): fixed

* Fix/overview (#349)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(children): refactor get children request (#351)

* Fix/overview (#352)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(updates): clean up some code

* fix(regions): updated regions state and removed duplication

* fix(providers): updated models for providers

* fix(test): fixed unit test

* fix(bugs): fixed bugs (#354)

* Feat(project-redirect-modal): added project redirect modal (#350)

* fix(add-project-redirect-modal): added project redirect modal

* refactor(add-project-redirect-modal): added pipe to the modal subscription

* Test/395 institutions components (#358)

* test(institutions): tested institutions, institutions-list, institutions-search components

* fix(tests): fixed tests

* Fix/registration bugs (#356)

* fix(registration): fixed 594

* fix(registration-bugs): fixed some registrations bugs

* fix(registration): fixed registrations fr project

* fix(registration): remove useless font class

* fix(tags-input): Fix strange behaviour when removing first tag (#361)

* Fix/accessibility (#359)

* fix(accessibility): update accessibility for some pages

* fix(accessibility): added aria labels

* fix(updates): clean up code

* fix(routes): removed unused route

* fix(accessibility): added aria labels to institutions

* fix(accessibility): removed aria label for header button

* fix(metadata): fixed spacing

* fix(resource-metadata): fixed url

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Fix/search filters (#360)

* fix(global-search-filters): Resolved TODOs

* fix(global-search-filters): Fixed and simplified filters logic code

* fix(global-search-resource-card): Made links open in a new tab

* fix(global-search-filters): Added cardSearchResultCount to filter option

* fix(global-search-filters): Fixed boolean filters selected state

* fix(global-search-filters): Fixed after merge conflict

* fix(global-search-filters): Fixed PR comments

* Feat(ENG-8625): add Recent Activity to registrations (#315)

* feat(registration-recent-activity): add Recent Activity to registrations

* feat(registration-recent-activity): code fixes regarding comments

* feat(registration-recent-activity): second round of code fixes regarding review comments

* feat(registration-recent-activity): run lint fix

* fix(recent-activity): updated some code (#364)

* fix(errors): fixed some issues

* fix(dashboard): fixed bugs

* fix(tests): fixed unit tests

* fix(config): added error handling

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>

* [eng-8768] Added helpscout to various pages. (#357)

* feat(eng-8768): add the help-scout to preprints

* feat(eng-8768): add the help-scout to projects

* feat(eng-8768): add the help-scout to registration

* feat(eng-8768): add the help-scout to settings and registries files

* feat(pr-updates): updated code based on the pr

* [ENG-8777] Add scheduled banner (#371)

* feat(banner): Add services and models for scheduled banners

* feat(osf): Add scheduled banner

* feat(banner): CR followup

* feat(banners): CR followup again

* feat(banners): Use primeflex classesl; remove scss file

---------

Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>
rnastyuk added a commit that referenced this pull request Sep 17, 2025
* Update develop from main (#322)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>

* Feat(8653): Implement view tracking for registrations and preprints (#308)

* feat(datacite-tracker): implemented datacite view tracking for registries and preprints

* chore(datacite-tracker): refactored doi extraction to be less repetitive

* fix(datacite-tracker): reverted undesired refactor

* chore(datacite-tracker): added tests to registry component

* fix(datacite-tracker): fixed datacite tracker effect

* chore(datacite-tracker): added tests to project and preprint components

* [ENG-8624] feat(registries): add context to registration submission + rearrange title and description layout (#304)

* feat(registries): add context to registration submission + rearrange layout

* feat(registries): CR followup

* feat(registries): Add test for TagsComponent

* feat(registries): Add moar tests

* feat(registries): CR followup

* [ENG-8504] Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab (#301)

* Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab

* 1. add translations
2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project

* align footer content left

* use angular routerLink approach for <a>

* add margin bottom for Visit button to look it better on resizing

* update footer formatting

* fix(dashboard): Fix [WARNING] NG8107

* fix(dashboard): remove not used variable

* fix(dashboard): fix code format by running "npm run lint:fix && npm run format"

* fix(dashboard): use .png names without guid

* implement unit testing for dashboard when there is a project and there is no project

* remove redundant footer RPCB and RCP links

* move dashboard images alt text to en.json

* add test for openInfoLink()

* update(dashboard): use dashboard.data for mocking

* update(dashboard): add test to show that products footer images no exists on spinner run and are rendering after it finished running

* fix(dashboard): npm run lint:fix && npm run format

* add missing code for dashboard

* remove redundant imports for dashboard test

* use providers -> useValue  mock approach for dashboard

* resolve CR comments

* Fix/develop conflicts (#332)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>

* [ENG-8639] add <meta> tags to files detail (#324)

* chore(meta-tags): cleaner meta-tag cleanup (without urls)

* chore(meta-tags): add full name to contributor tag

* feat(meta-tags): add meta tags to file-detail page

* fix(meta-tags): use image that exists

* feat(ci): separate linting from tests (#345)

* Feat(datacite-tracker): implemented file view and  download tracking (#335)

* feat(datacite-tracker): implemented file view and download tracking

* feat(datacite-tracker): implemented preprint version download tracking

* chore(datacite-tracker): rewritten existing tests to respect recent refactor

* chore(datacite-tracker): added tests for file downloads tracking

* chore(datacite-tracker): added tests for leftover components and pr comment fixes

* Feat(ENG-8778): Implement Cookie consent message (#353)

* feat(cookie-consent): added toast which asks for cookie consent

* chore(cookie-consent): added tests for cookie consent

* chore(datacite-tracker): fixed review comments

* [eng-8741] Added Sentry to the app (#340)

* chore(config-service): added a config service with tests

* feat(sentry): added sentry to the app and state-error handler with tests

* feat(promise): added a promise for application loading

* refactor(rename): renamed the files and consts to be more explicit

* feat(google-tag-manager): added a google tag manager factor

* feat(gtm): added the logic to get the google tag manager working

* feat(pr-review): add code from pr

* feat(eng-8741): added conditions if the config variables are not present

* chore(nit-pick-for-brian-g): add a gitignore

* Fix/dev to main (#368)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

* Test/565 my projects (#334)

* test(my-projects): added unit tests

* test(create-project-dialog): fixed errors

* test(my-projects): fixed errors

* test(create-project-dialog): fixed

* Feat/550 file widget (#323)

* feat(file): file-widget

* feat(file): fixed move file

* Update src/app/features/project/overview/components/files-widget/files-widget.component.html

Co-authored-by: nsemets <nsemets@exoft.net>

* feat(file): resolve comments

* feat(file): refactoring

* feat(file): remove sorting storage

* feat(file): navigate to file

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/metadata (#336)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* chore(env): updated env files (#328)

* chore(env): updated env files

* fix(env): updated api url

* fix(env): updated env for files widget

* fix(redirect): fixed redirect after registration (#339)

* Test/576 analytics (#341)

* test(analytics): added new unit tests

* test(analytics): fixed

* Feat - Admin institution filters (#333)

* refactor(admin-institutions): Refactored and simplified code

* fix(admin-institutions): Fixed columns and sorting

* feat(institutions-projects): Implemented filters for projects tab. Fixed search result parsing

* feat(institutions-preprints): Implemented filters for preprints tab. Fixed search result parsing

* feat(institutions-registration): Implemented filters for registration tab

* fix(institutions-admin): Fixed resources to table mapping

* fix(institutions-admin): Fixed hardcoded institution iri for index-value-search

* refactor(institutions-admin-service): Extracted apiUrl to local variable

* fix(resource-model): Fix after merge conflict

* fix(institution-users): Fixed links to user

* fix(institutions-dashboard): Added translations

* fix(institutions-dashboard): Fixed tests

* fix(admin-institutions): Refactored filters to reusable component

* fix(admin-institutions): Fixed comments

* Fix - Preprints bugs (#337)

* fix(metadata-step): Made Publication DOI field optional

* fix(preprints-landing): Contact Us button titlecased, Show example button link fixed

* fix(create-new-version): Handled back button

* fix(preprint-moderation): Fixed sorting for submissions

* fix(license-component): Clearing all fields on cancel button click

* fix(preprint-stepper): Fixed add-project-form

* Fix/affiliated institutions (#342)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* Fix/affiliated institutions (#344)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* fix(files): updated files

* Feat/185 - Linked services (#338)

* feat(verified-links): fixed minor linked resources bugs

* feat(linked-services): added link addons configuration logic to the project settings

* feat(linked-services): added linked services page and nav tab, added link addons to settings

* feat(linked-services): fixed issues after merging

* feat(linked-services): fixed pre-push husky file

* fix(linked-services): updated tables

* feat(linked-services): added link disabling logic for storage item selector

* feat(linked-services): fixed comments and minor bugs

* feat(linked-services): fixed test issues

* feat(linked-services): fixed storage description display issue on addon terms page

* fix(recent-activity): resolved view only link addon logging issue

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/clean code (#347)

* fix(packages): removed unused packages

* fix(protected): removed protected in all files

* fix(styles): removed some mixins and scss files

* fix(classes): removed old classes

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* fix(file): downloads link (#346)

* Test/580 home page (#348)

* test(router): added route mocks

* test(router): added tests for dashboard page

* test(router): added tests for home page

* test(analytics): fixed

* Fix/overview (#349)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(children): refactor get children request (#351)

* Fix/overview (#352)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(updates): clean up some code

* fix(regions): updated regions state and removed duplication

* fix(providers): updated models for providers

* fix(test): fixed unit test

* fix(bugs): fixed bugs (#354)

* Feat(project-redirect-modal): added project redirect modal (#350)

* fix(add-project-redirect-modal): added project redirect modal

* refactor(add-project-redirect-modal): added pipe to the modal subscription

* Test/395 institutions components (#358)

* test(institutions): tested institutions, institutions-list, institutions-search components

* fix(tests): fixed tests

* Fix/registration bugs (#356)

* fix(registration): fixed 594

* fix(registration-bugs): fixed some registrations bugs

* fix(registration): fixed registrations fr project

* fix(registration): remove useless font class

* fix(tags-input): Fix strange behaviour when removing first tag (#361)

* Fix/accessibility (#359)

* fix(accessibility): update accessibility for some pages

* fix(accessibility): added aria labels

* fix(updates): clean up code

* fix(routes): removed unused route

* fix(accessibility): added aria labels to institutions

* fix(accessibility): removed aria label for header button

* fix(metadata): fixed spacing

* fix(resource-metadata): fixed url

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Fix/search filters (#360)

* fix(global-search-filters): Resolved TODOs

* fix(global-search-filters): Fixed and simplified filters logic code

* fix(global-search-resource-card): Made links open in a new tab

* fix(global-search-filters): Added cardSearchResultCount to filter option

* fix(global-search-filters): Fixed boolean filters selected state

* fix(global-search-filters): Fixed after merge conflict

* fix(global-search-filters): Fixed PR comments

* Feat(ENG-8625): add Recent Activity to registrations (#315)

* feat(registration-recent-activity): add Recent Activity to registrations

* feat(registration-recent-activity): code fixes regarding comments

* feat(registration-recent-activity): second round of code fixes regarding review comments

* feat(registration-recent-activity): run lint fix

* fix(recent-activity): updated some code (#364)

* fix(errors): fixed some issues

* fix(dashboard): fixed bugs

* fix(tests): fixed unit tests

* fix(config): added error handling

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>

* [eng-8768] Added helpscout to various pages. (#357)

* feat(eng-8768): add the help-scout to preprints

* feat(eng-8768): add the help-scout to projects

* feat(eng-8768): add the help-scout to registration

* feat(eng-8768): add the help-scout to settings and registries files

* feat(pr-updates): updated code based on the pr

* [ENG-8777] Add scheduled banner (#371)

* feat(banner): Add services and models for scheduled banners

* feat(osf): Add scheduled banner

* feat(banner): CR followup

* feat(banners): CR followup again

* feat(banners): Use primeflex classesl; remove scss file

---------

Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>
github-merge-queue bot pushed a commit that referenced this pull request Sep 17, 2025
* fix(add-project-redirect-modal): added project redirect modal

* refactor(add-project-redirect-modal): added pipe to the modal subscription

* fix(addons): added logic for handling redirection after the oauth flow has finished

* fix(addons): added data attributes

* fix(addons): fixed comments

* fix(addons): fixed binding visibility change issues

* fix(addons): fixed issue with connecting citations addons

* Fix/625 view duplicates bug (#389)

* fix(tests): fixed unit tests

* fix(bug): fixed view duplicates bug

* fix(bugs): fixed permission bug

* fix(users): added 5 more columns options (#390)

* fix(users): added 5 more columns options

* fix(summary): fixed charts numbers display

* Fix test env SHARE url (#393)

* Fix/wiki (#392)

* fix(scroll): scroll to top after navigation end

* fix(scroll): scroll to top after navigation end

* fix(wiki): wiki bugs

* Feature/eslint pipeline Fixed all the lint errors and updated sentry (#396)

* chore(eslint): added updates to eslint for the pipeline

* chore(linting): fixed some linting

* chore(error-updates): added hints to the sentry

* Fix/main to dev (#395)

* Update develop from main (#322)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>

* Feat(8653): Implement view tracking for registrations and preprints (#308)

* feat(datacite-tracker): implemented datacite view tracking for registries and preprints

* chore(datacite-tracker): refactored doi extraction to be less repetitive

* fix(datacite-tracker): reverted undesired refactor

* chore(datacite-tracker): added tests to registry component

* fix(datacite-tracker): fixed datacite tracker effect

* chore(datacite-tracker): added tests to project and preprint components

* [ENG-8624] feat(registries): add context to registration submission + rearrange title and description layout (#304)

* feat(registries): add context to registration submission + rearrange layout

* feat(registries): CR followup

* feat(registries): Add test for TagsComponent

* feat(registries): Add moar tests

* feat(registries): CR followup

* [ENG-8504] Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab (#301)

* Show Osf introduction video and Collections,Institutions, Registries, Preprints url banners if user have not created any project for home (/dashboard) tab

* 1. add translations
2. add loading ( <osf-loading-spinner/>) - otherwise interface show video and afterward search (shown in details in github PR 301 video)
3. maybe there is better solution for existsProjects() || cd angular-osfsearchControl?.value?.length to check if user has at least one project

* align footer content left

* use angular routerLink approach for <a>

* add margin bottom for Visit button to look it better on resizing

* update footer formatting

* fix(dashboard): Fix [WARNING] NG8107

* fix(dashboard): remove not used variable

* fix(dashboard): fix code format by running "npm run lint:fix && npm run format"

* fix(dashboard): use .png names without guid

* implement unit testing for dashboard when there is a project and there is no project

* remove redundant footer RPCB and RCP links

* move dashboard images alt text to en.json

* add test for openInfoLink()

* update(dashboard): use dashboard.data for mocking

* update(dashboard): add test to show that products footer images no exists on spinner run and are rendering after it finished running

* fix(dashboard): npm run lint:fix && npm run format

* add missing code for dashboard

* remove redundant imports for dashboard test

* use providers -> useValue  mock approach for dashboard

* resolve CR comments

* Fix/develop conflicts (#332)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>

* [ENG-8639] add <meta> tags to files detail (#324)

* chore(meta-tags): cleaner meta-tag cleanup (without urls)

* chore(meta-tags): add full name to contributor tag

* feat(meta-tags): add meta tags to file-detail page

* fix(meta-tags): use image that exists

* feat(ci): separate linting from tests (#345)

* Feat(datacite-tracker): implemented file view and  download tracking (#335)

* feat(datacite-tracker): implemented file view and download tracking

* feat(datacite-tracker): implemented preprint version download tracking

* chore(datacite-tracker): rewritten existing tests to respect recent refactor

* chore(datacite-tracker): added tests for file downloads tracking

* chore(datacite-tracker): added tests for leftover components and pr comment fixes

* Feat(ENG-8778): Implement Cookie consent message (#353)

* feat(cookie-consent): added toast which asks for cookie consent

* chore(cookie-consent): added tests for cookie consent

* chore(datacite-tracker): fixed review comments

* [eng-8741] Added Sentry to the app (#340)

* chore(config-service): added a config service with tests

* feat(sentry): added sentry to the app and state-error handler with tests

* feat(promise): added a promise for application loading

* refactor(rename): renamed the files and consts to be more explicit

* feat(google-tag-manager): added a google tag manager factor

* feat(gtm): added the logic to get the google tag manager working

* feat(pr-review): add code from pr

* feat(eng-8741): added conditions if the config variables are not present

* chore(nit-pick-for-brian-g): add a gitignore

* Fix/dev to main (#368)

* Fix/improvements (#319)

* fix(meetings): fixed meetings small issues

* fix(tooltips): added tooltips

* fix(table): updated sorting

* fix(settings): fixed update project

* fix(bookmarks): updated bookmarks

* fix(my-registrations): fixed my registrations

* fix(developer-apps): fixed developer apps

* fix(settings): updated tokens and notifications

* fix(translation): removed dot

* fix(info-icon): updated info icon translate

* fix(profile-settings): fixed profile settings

* fix(test): updated tests

* fix(settings): updated settings

* fix(user-emails): updated adding emails to user account

* fix(tests): updated tests

* fix(clean-up): clean up

* fix(models): updated models

* fix(models): updated region and license models

* fix(styles): moved styles from assets

* fix(test): fixed institution loading and test for view only link

* fix(analytics): added check if is public

* fix(analytics): updated analytics feature

* fix(analytics): show message when data loaded

* fix(view-only-links): updated view only links

* fix(view only links): added shared components

* fix(tests): fixed tests

* fix(unit-tests): updated jest config

* fix(view-only-links): update view only links for components

* fix(create-view-link): added logic for uncheck

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Test/387 settings page tokens (#318)

* test(tokens): added new tests

* test(tokens): added new unit tests

* test(tokens): fixed tests and jest.config

* test(tokens): fixed pr comments

* Fix - Search (#286)

* feat(search): added generic search component

* feat(search): improved search for institutions

* feat(search): remove unused files

* feat(search): fixed some issues

* fix(search): removed comments

* fix(profile): renamed it to profile

* fix(updates): updates

* fix(branding): Minor fixed regarding provider hero for preprints and registry

* refactor(search-results-container): Encapsulated some logic, reduced duplication

* refactor(search-results-container): Encapsulated tabs logic

* refactor(search): Refactored partly search section for preprints and profile

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for global, institutions page, registrations page search

* refactor(search): Refactored search logic for profile

* feat(profile): Implemented my-profile and user/:id pages

* refactor(preprint-provider-discover): Removed search section that uses old approach

* refactor(search): Create shared component that encapsulates search logic and reused across the app

* refactor(shared-search): Extracted state model. Reduced duplications. Fixed IndexValueSearch filters

* refactor(search): Using ResourceType instead of ResourceTab. Fixed params for index-value-search

* refactor(search-models): Cleaned up models - renamed files, moved models to appropriate locations

* refactor(index-card-search): Refactored models

* fix(resource-card): Fixed resource-card component

* fix(resource-card-secondary-metadata): Fixed resource-card component

* fix(search): Fixed PR comments and conflicts after merge

* refactor(search): Renamed OsfSearch- to GlobalSearch-

* fix(unit-tests): fixed unit tests

---------

Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/557 missing tooltip (#320)

* fix(tooltip): added tooltip to next button

* fix(emails): fixed emails bug

* chore(test-env): added test env (#321)

* Chore/test docs added more docs and updated docs in the ever expanding evolution. (#309)

* chore(testing-docs): incremental update to the testing docs

* chore(diagram): updated the ngx application diagram

* chore(indexes): added indexes to all files

* docs(updates): added new docs and explanations

* chore(pr-updates): updated the files based on pr feedback

* Fix/registrations (#326)

* fix(settings): updated settings routes

* fix(registry-links): updated registry links

* fix(registration): updated components, resource and links

* fix(wiki): updated wiki

* fix(redirect-link): removed it (#327)

* [ENG-8505] Finished adding the GFP to the files page (#325)

* feat(eng-8505): Added the initial google drive button

* feat(eng-8505): add the accountid with tests

* feat(more-tests): updated tests

* feat(eng-8505): updates for tests

* feat(eng-8505): finishing updates for the google file picker

* chore(test fixes): updates to broken tests

* chore(pr updates): add updates based on pr feedback and more docs

* Test/565 my projects (#334)

* test(my-projects): added unit tests

* test(create-project-dialog): fixed errors

* test(my-projects): fixed errors

* test(create-project-dialog): fixed

* Feat/550 file widget (#323)

* feat(file): file-widget

* feat(file): fixed move file

* Update src/app/features/project/overview/components/files-widget/files-widget.component.html

Co-authored-by: nsemets <nsemets@exoft.net>

* feat(file): resolve comments

* feat(file): refactoring

* feat(file): remove sorting storage

* feat(file): navigate to file

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/metadata (#336)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* chore(env): updated env files (#328)

* chore(env): updated env files

* fix(env): updated api url

* fix(env): updated env for files widget

* fix(redirect): fixed redirect after registration (#339)

* Test/576 analytics (#341)

* test(analytics): added new unit tests

* test(analytics): fixed

* Feat - Admin institution filters (#333)

* refactor(admin-institutions): Refactored and simplified code

* fix(admin-institutions): Fixed columns and sorting

* feat(institutions-projects): Implemented filters for projects tab. Fixed search result parsing

* feat(institutions-preprints): Implemented filters for preprints tab. Fixed search result parsing

* feat(institutions-registration): Implemented filters for registration tab

* fix(institutions-admin): Fixed resources to table mapping

* fix(institutions-admin): Fixed hardcoded institution iri for index-value-search

* refactor(institutions-admin-service): Extracted apiUrl to local variable

* fix(resource-model): Fix after merge conflict

* fix(institution-users): Fixed links to user

* fix(institutions-dashboard): Added translations

* fix(institutions-dashboard): Fixed tests

* fix(admin-institutions): Refactored filters to reusable component

* fix(admin-institutions): Fixed comments

* Fix - Preprints bugs (#337)

* fix(metadata-step): Made Publication DOI field optional

* fix(preprints-landing): Contact Us button titlecased, Show example button link fixed

* fix(create-new-version): Handled back button

* fix(preprint-moderation): Fixed sorting for submissions

* fix(license-component): Clearing all fields on cancel button click

* fix(preprint-stepper): Fixed add-project-form

* Fix/affiliated institutions (#342)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* Fix/affiliated institutions (#344)

* fix(metadata): updated metadata

* fix(metadata): fixes

* fix(my-profile): fixed route

* fix(models): updated some models

* fix(tests): fixed unit tests

* fix(institutions): updated institutions

* fix(my-projects): bookmarks

* fix(institutions): updated affiliated institutions and fixed some bugs

* fix(tests): fixed tests

* fix(tests): updated if statement

* fix(bugs): fixed some bugs

* fix(files): updated files

* Feat/185 - Linked services (#338)

* feat(verified-links): fixed minor linked resources bugs

* feat(linked-services): added link addons configuration logic to the project settings

* feat(linked-services): added linked services page and nav tab, added link addons to settings

* feat(linked-services): fixed issues after merging

* feat(linked-services): fixed pre-push husky file

* fix(linked-services): updated tables

* feat(linked-services): added link disabling logic for storage item selector

* feat(linked-services): fixed comments and minor bugs

* feat(linked-services): fixed test issues

* feat(linked-services): fixed storage description display issue on addon terms page

* fix(recent-activity): resolved view only link addon logging issue

---------

Co-authored-by: nsemets <nsemets@exoft.net>

* Fix/clean code (#347)

* fix(packages): removed unused packages

* fix(protected): removed protected in all files

* fix(styles): removed some mixins and scss files

* fix(classes): removed old classes

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* fix(file): downloads link (#346)

* Test/580 home page (#348)

* test(router): added route mocks

* test(router): added tests for dashboard page

* test(router): added tests for home page

* test(analytics): fixed

* Fix/overview (#349)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(children): refactor get children request (#351)

* Fix/overview (#352)

* fix(add): updated add project and component dialog

* fix(move-file): updated button

* fix(overview): updated project overview

* fix(updates): clean up some code

* fix(regions): updated regions state and removed duplication

* fix(providers): updated models for providers

* fix(test): fixed unit test

* fix(bugs): fixed bugs (#354)

* Feat(project-redirect-modal): added project redirect modal (#350)

* fix(add-project-redirect-modal): added project redirect modal

* refactor(add-project-redirect-modal): added pipe to the modal subscription

* Test/395 institutions components (#358)

* test(institutions): tested institutions, institutions-list, institutions-search components

* fix(tests): fixed tests

* Fix/registration bugs (#356)

* fix(registration): fixed 594

* fix(registration-bugs): fixed some registrations bugs

* fix(registration): fixed registrations fr project

* fix(registration): remove useless font class

* fix(tags-input): Fix strange behaviour when removing first tag (#361)

* Fix/accessibility (#359)

* fix(accessibility): update accessibility for some pages

* fix(accessibility): added aria labels

* fix(updates): clean up code

* fix(routes): removed unused route

* fix(accessibility): added aria labels to institutions

* fix(accessibility): removed aria label for header button

* fix(metadata): fixed spacing

* fix(resource-metadata): fixed url

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>

* Fix/search filters (#360)

* fix(global-search-filters): Resolved TODOs

* fix(global-search-filters): Fixed and simplified filters logic code

* fix(global-search-resource-card): Made links open in a new tab

* fix(global-search-filters): Added cardSearchResultCount to filter option

* fix(global-search-filters): Fixed boolean filters selected state

* fix(global-search-filters): Fixed after merge conflict

* fix(global-search-filters): Fixed PR comments

* Feat(ENG-8625): add Recent Activity to registrations (#315)

* feat(registration-recent-activity): add Recent Activity to registrations

* feat(registration-recent-activity): code fixes regarding comments

* feat(registration-recent-activity): second round of code fixes regarding review comments

* feat(registration-recent-activity): run lint fix

* fix(recent-activity): updated some code (#364)

* fix(errors): fixed some issues

* fix(dashboard): fixed bugs

* fix(tests): fixed unit tests

* fix(config): added error handling

---------

Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>

* [eng-8768] Added helpscout to various pages. (#357)

* feat(eng-8768): add the help-scout to preprints

* feat(eng-8768): add the help-scout to projects

* feat(eng-8768): add the help-scout to registration

* feat(eng-8768): add the help-scout to settings and registries files

* feat(pr-updates): updated code based on the pr

* [ENG-8777] Add scheduled banner (#371)

* feat(banner): Add services and models for scheduled banners

* feat(osf): Add scheduled banner

* feat(banner): CR followup

* feat(banners): CR followup again

* feat(banners): Use primeflex classesl; remove scss file

---------

Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Roman Nastyuk <rnastyuk@exoft.net>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>

* Fix/wiki (#398)

* fix(scroll): scroll to top after navigation end

* fix(scroll): scroll to top after navigation end

* fix(wiki): wiki bugs

* fix(file): file limits

* fix(wiki): responsive

* Fix - Contributors permissions (#391)

* fix(contributors): Fixed contributors management permissions

* fix(contributors): Fixed contributors mapping for registration card

* fix(eng-8505): added config variable for google file picker (#397)

* Fix/649 moderation tab (#400)

* fix(users): added 5 more columns options

* fix(summary): fixed charts numbers display

* fix(institutions): updates

* fix(users-state): removed unused code

* fix(collections): updated imports

* fix(provider): updated collection and registration providers

* fix(registry-provider): updated provider for registrations

* fix(moderation-tab): updated provider setup

* fix(tests): fixed unit tests

* fix(conflict): removed code from conflict

* fix(banner): fixed code in banner component

* fix(collections): fixed visibility of collections tab

* fix(collections): fixed subjects bug

* fix(moderators): fixed moderators and contributors search

* fix(datalayer): fixed to handle datalayer existence (#401)

* fix(metadata): correct resource type values (#402)

* Fix(view-only-links): View only links files access issues (#399)

* fix(view-only-links): fixed view only links files access issues

* fix(view-only-links): fixed file guid absence while redirecting

* fix(view-only-links): fixed files spec file issue

* fix(addons): fixed connect/configure button appearence and logic

---------

Co-authored-by: nsemets <nsemets@exoft.net>
Co-authored-by: mfraezz <maf7sm@virginia.edu>
Co-authored-by: nmykhalkevych-exoft <nmykhalkevych@exoft.net>
Co-authored-by: Lord Business <113387478+bp-cos@users.noreply.github.com>
Co-authored-by: Nazar Semets <nazar690@gmail.com>
Co-authored-by: dinlvkdn <104976612+dinlvkdn@users.noreply.github.com>
Co-authored-by: rrromchIk <90086332+rrromchIk@users.noreply.github.com>
Co-authored-by: volodyayakubovskyy <vyakubovskyy477@gmail.com>
Co-authored-by: Oleh Paduchak <158075011+opaduchak@users.noreply.github.com>
Co-authored-by: Yuhuai Liu <yuhuai@cos.io>
Co-authored-by: mkovalua <mkoval@exoft.net>
Co-authored-by: abram axel booth <aaxelb@users.noreply.github.com>
Co-authored-by: sh-andriy <105591819+sh-andriy@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants